#pragma once

#include "Vector.h"

class Circle;
class Line;

struct ManifoldPoint;

class Primitive
{
	public:
		Primitive() : m_bActive(true) {}
		~Primitive() {}

		virtual void CollisionResponseWith(ManifoldPoint& point, float dt)=0;
		virtual void CollisionResponseWithCircle(ManifoldPoint& point, float dt)=0;
		virtual void CollisionResponseWithLine(ManifoldPoint& point, float dt)=0;

		float toDegrees(float rad) const;

		void setActive(bool v); 
		bool getActive() const { return m_bActive; }

	protected:
		bool m_bActive;
		Vector m_color;
};